wayland: Check for subsurface looking up the toplevel
authorOlivier Fourdan <ofourdan@redhat.com>
Tue, 29 Nov 2016 13:21:57 +0000 (14:21 +0100)
committerOlivier Fourdan <ofourdan@redhat.com>
Wed, 30 Nov 2016 09:05:47 +0000 (10:05 +0100)
gdk_window_get_toplevel() walks up the windows tree looking for the
corresponding toplevel window, but needs to account for subsurfaces as
well on Wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=775319

gdk/gdkwindow.c

index 4051d8dff41cd6bd3ac31274eef2b0e7a1be3aa3..2ff89ee8e66eeaa1a84e0b02fa88cd9eb93188cb 100644 (file)
@@ -2278,7 +2278,8 @@ gdk_window_get_toplevel (GdkWindow *window)
 {
   g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
 
-  while (window->window_type == GDK_WINDOW_CHILD)
+  while (window->window_type == GDK_WINDOW_CHILD ||
+         window->window_type == GDK_WINDOW_SUBSURFACE)
     {
       if (gdk_window_is_toplevel (window))
        break;